<% import grails.persistence.Event %>
<%=packageName%>
<!doctype html>
<html>
<head>
    <meta name="layout" content="admin">
    <g:set var="entityName" value="\${message(code: '${domainClass.propertyName}.label', default: '${className}')}"/>
    <title><g:message code="default.show.label" args="[entityName]"/></title>
</head>

<body>
<div class="page-header">
    <h1><g:message code="default.show.label" args="[entityName]"/></h1>
</div>

<g:if test="\${flash.message}">
    <div class="alert" role="status">\${flash.message}</div>
</g:if>

<div class="row">
    <div class="span3">
        <g:link class="btn" action="list"><g:message code="default.list.label" args="[entityName]"/></g:link>
    </div>

    <div class="span9">
        <div class="property-list ${domainClass.propertyName}">
            <% excludedProps = Event.allEvents.toList() << 'id' << 'version'
            allowedNames = domainClass.persistentProperties*.name << 'dateCreated' << 'lastUpdated'
            props = domainClass.properties.findAll { allowedNames.contains(it.name) && !excludedProps.contains(it.name) }
            Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
            props.each { p -> %>
            <p class="clearfix">
                <span class="property-label"><g:message code="${domainClass.propertyName}.${p.name}.label" default="${p.naturalName}"/></span>
                <% if (p.isEnum()) { %>
                <span class="property-value" aria-labelledby="${p.name}-label"><g:fieldValue bean="\${${propertyName}}" field="${p.name}"/></span>
                <% } else if (p.oneToMany || p.manyToMany) { %>
                <g:each in="\${${propertyName}.${p.name}}" var="${p.name[0]}">
                    <span class="property-value" aria-labelledby="${p.name}-label"><g:link controller="${p.referencedDomainClass?.propertyName}" action="show"
                                                                                           id="\${${p.name[0]}.id}">\${${p.name[0]}?.encodeAsHTML()}</g:link></span>
                </g:each>
                <% } else if (p.manyToOne || p.oneToOne) { %>
                <span class="property-value" aria-labelledby="${p.name}-label"><g:link controller="${p.referencedDomainClass?.propertyName}" action="show"
                                                                                       id="\${${propertyName}?.${p.name}?.id}">\${${propertyName}?.${p.name}?.encodeAsHTML()}</g:link></span>
                <% } else if (p.type == Boolean || p.type == boolean) { %>
                <span class="property-value" aria-labelledby="${p.name}-label"><g:formatBoolean boolean="\${${propertyName}?.${p.name}}"/></span>
                <% } else if (p.type == Date || p.type == java.sql.Date || p.type == java.sql.Time || p.type == Calendar) { %>
                <span class="property-value" aria-labelledby="${p.name}-label"><mat:formatDate date="\${${propertyName}?.${p.name}}"/></span>
                <% } else if (!p.type.isArray()) { %>
                <span class="property-value" aria-labelledby="${p.name}-label"><g:fieldValue bean="\${${propertyName}}" field="${p.name}"/></span>
                <% } %>
            </p>
            <% } %>
        </div>
        <g:form>
            <fieldset class="buttons">
                <g:hiddenField name="id" value="\${${propertyName}?.id}"/>
                <g:link class="btn" action="edit" id="\${${propertyName}?.id}"><g:message code="default.button.edit.label" default="Edit »"/></g:link>
                <g:actionSubmit class="delete btn btn-danger" action="delete" value="\${message(code: 'default.button.delete.label', default: 'Delete')}"
                                onclick="return confirm('\${message(code: 'default.button.delete.confirm.message', default: 'Are you sure?')}');"/>
            </fieldset>
        </g:form>
    </div>
</div>
</div>
</body>
</html>
